#ifndef VIDEOSTREAMIMPL_H
#define VIDEOSTREAMIMPL_H

#include "streamabstract.h"
class MediaImagehandler;
class TimerSynchAbstract;
class VideoDecodeTask;
class SynchronousAV;
class VideoStreamImpl : public StreamAbstract
{
public:
    VideoStreamImpl(AVStream *stream,MediaImagehandler*handler);
    virtual ~VideoStreamImpl();
public:
    void SetTimerSynchTarget(TimerSynchAbstract*Target);
    bool is_init();
public:
    virtual bool    Init();
    virtual bool    UnInit();
    virtual bool    receive_handler(const char *data,int size);
private:
    MediaImagehandler   *m_oMediaImagehandler;
    TimerSynchAbstract  *m_oSynchTarget;
private:
    VideoDecodeTask     *m_oVideoDecodeTask;
    SynchronousAV       *m_oSynchronousAV;
    bool bInit          ;
};

#endif // VIDEOSTREAMIMPL_H
